package algorithm.easy;

/**
 * @author 江岸
 * @version V1.0
 * @ClassName: maxProfit121
 * @description:
 * @date 2021/1/1817:18
 * @since V1.0
 */

/**
 * 给定一个数组，它的第 i 个元素是一支给定股票第 i 天的价格。
 *
 * 如果你最多只允许完成一笔交易（即买入和卖出一支股票一次），设计一个算法来计算你所能获取的最大利润。
 *
 * 注意：你不能在买入股票前卖出股票。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class maxProfit121 {
    public static void main(String[] args) {
        int[] prices = {7,3,5,3,1,4};
        System.out.println(fun(prices));
    }
    //保存一个最低价格和最多差价，循环的同时进行比较
    public static int fun(int[] prices){
        int money = 0;
        int low = prices[0];
        for (int i=0;i<prices.length;i++){
            if (prices[i]<low){
                low = prices[i];
            }else if((prices[i]-low)>money){
                money = prices[i]-low;
            }
        }
        return money;
    }
}
